package com.dgy.project.service;

import java.util.List;
import com.dgy.project.domain.ProjectApply;
import com.dgy.project.pojo.dto.ProjectApplyListDTO;
import com.dgy.project.pojo.vo.ProjectApplyListVO;

/**
 * 项目节点Service接口
 *
 * @author ccc
 * @date 2025-03-26
 */
public interface IProjectApplyService
{
    /**
     * 查询项目节点
     *
     * @param applyId 项目节点主键
     * @return 项目节点
     */
    public ProjectApply selectProjectApplyById(Long applyId);

    /**
     * 查询项目节点
     *
     * @param projectApply 项目节点主键
     * @return 项目节点
     */
    public ProjectApply selectProjectApply(ProjectApply projectApply);

    /**
     * 查询项目节点列表
     *
     * @param projectApply 项目节点
     * @return 项目节点集合
     */
    public List<ProjectApply> selectProjectApplyList(ProjectApply projectApply);

    /**
     * 新增项目节点
     *
     * @param projectApply 项目节点
     * @return 结果
     */
    public int insertProjectApply(ProjectApply projectApply);

    /**
     * 修改项目节点
     *
     * @param projectApply 项目节点
     * @return 结果
     */
    public int updateProjectApply(ProjectApply projectApply);

    /**
     * 批量删除项目节点
     *
     * @param applyIds 需要删除的项目节点主键集合
     * @return 结果
     */
    public int deleteProjectApplyByIds(Long[] applyIds);

    /**
     * 删除项目节点信息
     *
     * @param applyId 项目节点主键
     * @return 结果
     */
    public int deleteProjectApplyById(Long applyId);

    /**
     * 添加项目申请
     */
    public int saveProjectApply(ProjectApply projectApply);

    /**
     * 查询项目列表
     *
     * @param projectApplyListDTO
     * @return
     */
    public List<ProjectApplyListVO> selectValidApplyList(ProjectApplyListDTO projectApplyListDTO);
}
